home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / tools / internet-tools / amiphone / install_amiphone < prev    next >
Text File  |  1996-02-26  |  10KB  |  237 lines

  1. ; Installation script for AmiPhone
  2. ; by Jeremy Friesner
  3.  
  4. (transcript "On installing AmiPhone...")
  5.  
  6. (if (exists "AmiTCP:" (noreq))
  7.  (
  8.     ; if AmiPhoned is already in /serv, probably they've already installed before
  9.     (set DefaultUpdate (exists "amitcp:serv/AmiPhoned" (noreq)))
  10.  
  11.     ; don't want to make a distinction between 1 and 2
  12.     (if (> DefaultUpdate 0)    (set DefaultUpdate 1))
  13.     
  14.     (set PhoneUpdate
  15.           (askchoice
  16.              (prompt "Select which kind of install you want:")
  17.              (choices "First Time Install" "Update")
  18.              (default DefaultUpdate)
  19.              (help "If you've never installed AmiPhone on your system before, select First Time Install.  If you already have an earlier version, select Update")
  20.        ))
  21.     
  22.     ; ask the user what kind of digitizer they use
  23.     (set Digitizer
  24.           (askchoice
  25.                (prompt "Select which type of audio digitizer you will be using with AmiPhone:")
  26.                (choices "GVP DSS8" "PerfectSound" "A.M.A.S." "Toccata" "Sound Magic" "Generic Parallel Port digitizer")
  27.                (default 5)
  28.                (help "To send speech with AmiPhone, you need an audio digitizer connected to your parallel port.  Although it often isn't necessary, AmiPhone likes to know what digitizer it is using.  If your digitizer model is not listed, please choose the Generic option.")
  29.           )
  30.     )
  31.     (select Digitizer
  32.         (set Digitizer "DSS8")
  33.         (set Digitizer "PERFECTSOUND")
  34.         (set Digitizer "AMAS")
  35.         (set Digitizer "TOCCATA")
  36.         (set Digitizer "SOUNDMAGIC")
  37.         (set Digitizer "GENERIC")
  38.     )
  39.     (tooltype
  40.         (dest "AmiPhone")
  41.         (settooltype "SAMPLER" Digitizer)
  42.     )
  43.  
  44.     ; do they want to set up AmiPhone to receive voice-mail?
  45.     (if (= 1 (askbool 
  46.         (prompt "\n\nDo you wish to set up AmiPhone to receive voice mail?")
  47.         (help "AmiPhone is capable of receiving and storing voice messages while you are away from your computer.  This takes some disk space though, so if you're tight on space, you might want to leave it disabled.")
  48.         (default 0)
  49.         (choices "Yes" "No")))
  50.     ; answered yes
  51.     (
  52.         (set MessageDir 
  53.             (askdir
  54.                         (prompt "What directory would you like AmiPhone to keep the voice message files in?  (NOTE: You should not keep any other files in this directory!)")
  55.                             (help @askdir-help)
  56.                             (default "AmiTCP:bin")))
  57.                 (set MaxDirSize
  58.                     (asknumber
  59.                         (prompt "\n\nWhat should be the maximum possible size (in kilobytes) of this directory be?  (Enter -1 for unlimited size)")
  60.                         (help "By setting this value, you can guarantee that AmiPhoned will not let anyone fill up your hard drive.  AmiPhoned counts the bytes in the voice mail directory on startup, and will reject messages if the directory size has reached the size you specify here.")
  61.                 (default 500)
  62.                 (range -1 1000000)))
  63.         
  64.         ; if a max size was set for the dir, use that as the max max file size as well
  65.         (if (> MaxDirSize -1)
  66.             (set MaxFileSize MaxDirSize)
  67.             (set MaxFileSize 1000000))
  68.         
  69.         (set MaxFileSize
  70.             (asknumber
  71.                 (prompt "\n\nWhat should the maximum possible size (in kilobytes) of each message be?  (Enter -1 to impose no special limit on individual message size)")
  72.                         (help "By setting this value, you can guarantee that no one message will fill up your entire allotment of message space.")
  73.                 (default 100)
  74.                 (range -1 MaxFileSize)))
  75.                 (set AwayVar
  76.                     (askstring
  77.                         (prompt "\n\nAmiPhone uses the presence of an ENV: var to determine whether or not you're away.  If the ENV: var is present, it takes a message, otherwise it puts up a requester for you.  What ENV: var would you like AmiPhone to look for?")
  78.                         (help "The ENV: var can be set manually by you, by a script, or often by your screen blanker.  Garshneblanker, for one, sets the ENV: var named BLANKED whenever the screen blanker is active.")
  79.                 (default "BLANKED")))
  80.         
  81.         ; set the tooltypes!    
  82.         (set BlankString "")
  83.  
  84.         (tooltype
  85.             (dest "AmiPhone")
  86.             (settooltype "VOICEMAILDIR" MessageDir))
  87.         (tooltype
  88.             (dest "AmiPhone")
  89.             (settooltype "AWAYVAR" AwayVar))
  90.  
  91.         (if (> MaxDirSize -1)
  92.         ((tooltype
  93.             (dest "AmiPhone")
  94.             (settooltype "MAXVOICEMAILSIZE" (cat BlankString MaxDirSize))))
  95.         ;else
  96.         ((tooltype (dest "AmiPhone") (settooltype "MAXVOICEMAILSIZE"))))
  97.         
  98.         (if (> MaxFileSize -1)    
  99.         ((tooltype
  100.             (dest "AmiPhone")
  101.             (settooltype "MAXMESSAGESIZE" (cat BlankString MaxFileSize))))
  102.         ;else
  103.         ((tooltype (dest "AmiPhone") (settooltype "MAXMESSAGESIZE"))))
  104.         
  105.     )
  106.     ; answered no
  107.     (
  108.         ; clean out any related tooltypes 
  109.         (tooltype (dest "AmiPhone") (settooltype "VOICEMAILDIR"))
  110.         (tooltype (dest "AmiPhone") (settooltype "MAXVOICEMAILSIZE"))
  111.         (tooltype (dest "AmiPhone") (settooltype "MAXMESSAGESIZE"))
  112.         (tooltype (dest "AmiPhone") (settooltype "AWAYVAR"))
  113.     ))
  114.     
  115.     (set PhoneDir
  116.         (askdir
  117.                     (prompt "What directory would you like to put the AmiPhone executable in?")
  118.                         (help @askdir-help)
  119.                         (default "AmiTCP:bin")
  120.                 )
  121.         )
  122.  
  123.     ; if PhoneDir isn't the usual, set the AMIPHONE env: var to let AmiPhoned know
  124.     (if (not (PatMatch "Amitcp:bin" PhoneDir))
  125.        (
  126.         (set EnvCommand (cat "echo " (tackon PhoneDir "AmiPhone") " >env:AMIPHONE"))
  127.         (run EnvCommand)
  128.         (set EnvCommand (cat "echo " (tackon PhoneDir "AmiPhone") " >envarc:AMIPHONE"))
  129.         (run EnvCommand)
  130.        )
  131.     )
  132.     
  133.     ; Copy AmiPhone and AmiPhoned to the bin and serv directories 
  134.     (copyfiles
  135.         (prompt (cat "Copying AmiPhone executable to " PhoneDir))
  136.         (help @copyfiles-help)
  137.         (source "")
  138.         (infos)
  139.         (pattern "AmiPhone")
  140.         (dest PhoneDir)
  141.     )
  142.     
  143.     (copyfiles
  144.         (prompt "Copying AmiPhoned daemon to amitcp:serv")
  145.         (help @copyfiles-help)
  146.         (source "")
  147.         (infos)
  148.         (pattern "AmiPhoned")
  149.         (dest "amitcp:serv")
  150.     )
  151.     
  152.     (run "delete t:AmiPhone.AppendMeToServices QUIET")
  153.     (if (= PhoneUpdate 0)
  154.         (
  155.             (textfile
  156.             (prompt "If you plan to be running AmiPhone in conjunction with AmiTCP, the line:\n\nAmiPhone      2956/udp\n\nneeds to be present in your amitcp:db/services file.  Do you wish me to append this line to that file?\n\n(Note: this does not check to see if the line is already in the file!  If you've installed AmiPhone before, skip this part)")
  157.             (help "Including this line in your amitcp:db/services file tells AmiTCP's inet daemon that all requests on port 2956 should be sent to the AmiPhoned program for further processing.  If this line is not included, you will not be able to receive AmiPhone requests from other people.")
  158.             (dest "t:AmiPhone.AppendMeToServices")
  159.             (append "\nAmiPhone    2956/udp\n")
  160.             (confirm)
  161.             )
  162.         
  163.             (set AddServiceString ("join amitcp:db/services t:AmiPhone.AppendMeToServices as t:AmiPhone.Temp1"))
  164.             (set UpdateServiceString ("copy t:AmiPhone.Temp1 amitcp:db/services"))
  165.         
  166.             (if (exists "t:AmiPhone.AppendMeToServices")
  167.                 ((run AddServiceString)
  168.                  (run UpdateServiceString)
  169.                  (run "delete t:AmiPhone.Temp1")
  170.                  (run "delete t:AmiPhone.AppendMeToServices")
  171.                 )
  172.             )
  173.                 
  174.  
  175.             (run "delete t:AmiPhone.AppendMeToInetD QUIET")
  176.         
  177.             (textfile
  178.                 (prompt "\nAlso, the line:\n\nAmiPhone dgram udp wait root amitcp:serv/AmiPhoned\n\nneeds to be present in your amitcp:db/inetd.conf file.  Do you wish me to append this line to that file?\n(Note: this does not check to see if the line is already in the file!  If you've installed AmiPhone before, skip this part)")
  179.                 (help "Including this line in your amitcp:db/inetd.conf file tells AmiTCP what program to run whenever it gets an AmiPhone request.  It is important that the file path and name in this line reflect the location of the AmiPhoned executable.")
  180.                 (dest "t:AmiPhone.AppendMeToInetD")
  181.                 (append "\nAmiPhone    dgram       udp wait root    amitcp:serv/AmiPhoned")
  182.                 (confirm)
  183.             )
  184.             
  185.             (set AddInetString ("join amitcp:db/inetd.conf t:AmiPhone.AppendMeToInetD as t:AmiPhone.Temp2"))
  186.             (set UpdateInetString ("copy t:AmiPhone.Temp2 amitcp:db/inetd.conf"))
  187.         
  188.             (if (exists "t:AmiPhone.AppendMeToInetD")
  189.                 ((run AddInetString)
  190.                  (run UpdateInetString)
  191.                  (run "delete t:AmiPhone.Temp2")
  192.                  (run "delete t:AmiPhone.AppendMeToInetD")
  193.                 )
  194.             )
  195.         )
  196.     ) ;;;;end if Update=0
  197.     
  198.     ; make sure HOSTNAME is set; if not, warn the user
  199.     (if (not (exists "env:HOSTNAME"))
  200.         (
  201.             (if (= 1 (askbool 
  202.                     (prompt "\n\nThe ENV variable HOSTNAME does not appear to be set on your system.  AmiPhone needs this ENV variable to run correctly.  Would you like to set it now?")
  203.                     (help "If you know the Internet Host name of your Amiga, select 'Enter HOSTNAME Now' and type it in.  Your HOSTNAME should be something like mycomputer.mynetwork.mydomain (ex: sdcc8.ucsd.edu)  The string you type will be saved to the files env:HOSTNAME and envarc:HOSTNAME.")
  204.                     (default 1)
  205.                     (choices "Enter HOSTNAME now" "Skip This Part")
  206.                  ))
  207.                 (
  208.                     (set HostName (askstring 
  209.                             (prompt "Please enter your HOSTNAME in the box below.  You HOSTNAME should be something like mycomputer.mysystem.mydomain (for example, sdcc8.ucsd.edu)")
  210.                             (help @askstring-help)
  211.                               )
  212.                 )
  213.                     ; just in case, delete so that we can't ever have two lines in var
  214.                     (delete "env:HOSTNAME")
  215.                     (delete "envarc:HOSTNAME")
  216.                     (if (= 0 (strlen HostName))
  217.                         (message "You entered an empty HOSTNAME string.  I'll assume that you wished to skip this part.")
  218.                         (
  219.                             (textfile
  220.                             (dest "ENV:HOSTNAME")
  221.                             (append HostName)    
  222.                         )
  223.                             (textfile
  224.                             (dest "ENVARC:HOSTNAME")
  225.                             (append HostName)    
  226.                         )
  227.                         )
  228.                     )
  229.                 )
  230.             )
  231.         )
  232.     )
  233.  
  234.     (message "\n\nAmiPhone is now installed.\nRe-start AmiTCP and try it out!")
  235.  )
  236.  (abort "\n\nAmiTCP does not appear to be set up on your system.  (Specifically, the assign AmiTCP: has not been made)  Because of this, I am unable to install AmiPhone.  Please install AmiTCP and then try again.")
  237. )